/*
类：算法对象
属性：
    name：算法名
    params：算法参数
方法：
    pushParam
        input：参数名，参数值
    deleteParam
        input：参数名
*/

class AlgorithmObject {
  name;
  params;
  constructor(name, params = {}) {
    this.name = name;
    this.params = params;
  }
  //添加参数
  pushParam(paramName, paramValue) {
    this.params[paramName] = paramValue;
  }
  // 删除参数
  deleteParam(paramName) {
    if (this.params.hasOwnProperty(paramName)) {
      delete this.params[paramName];
    } else {
      throw new Error('Without this parameter!');
    }
  }
  // 执行算法
  execute() {
    console.log(this);
  }
}
export { AlgorithmObject };
